#include "slist.h"


void test1()
{
	SListNode* sl = NULL;
	SListPushBack(&sl, 1);
	SListPushBack(&sl, 2);
	SListPushBack(&sl, 3);
	SListPushBack(&sl, 4);
	SListPushBack(&sl, 5);

	SListPrint(sl);

	/*SListPushFront(&sl, 1);
	SListPushFront(&sl, 2);
	SListPushFront(&sl, 3);
	SListPushFront(&sl, 4);
	SListPrint(sl);*/

	SListPopBack(&sl);
	SListPopBack(&sl);
	SListPopBack(&sl);
	SListPopBack(&sl);
	SListPopBack(&sl);
	//SListPopBack(&sl);

	SListPrint(sl);

}

void test2()
{
	SListNode* sl = NULL;
	SListPushBack(&sl, 1);
	SListPushBack(&sl, 2);
	SListPushBack(&sl, 3);
	SListPushBack(&sl, 4);
	SListPushBack(&sl, 5);

	SListPrint(sl);
	
	while (1)
	{	
		int n = 0;
		scanf("%d\n", &n);
		SListNode* pos = SListFind(sl, n);
		if (pos == NULL)
			break;
		SListInsertAfter(pos, n*10);
	}
	SListPrint(sl);

	/*SListPopFront(&sl);
	SListPopFront(&sl);
	SListPopFront(&sl);
	SListPopFront(&sl);
	SListPopFront(&sl);

	SListPrint(sl);*/


}

void test3()
{
	SListNode* sl = NULL;
	SListPushBack(&sl, 1);
	SListPushBack(&sl, 2);
	SListPushBack(&sl, 3);
	SListPushBack(&sl, 4);
	SListPushBack(&sl, 5);

	SListPrint(sl);

	SListNode* pos = SListFind(sl, 1);
	SListEraseAfter(pos);

	SListPrint(sl);

	pos = SListFind(sl, 1);
	SListEraseAfter(pos);

	SListPrint(sl);

	pos = SListFind(sl, 1);
	SListEraseAfter(pos);

	SListPrint(sl);

	pos = SListFind(sl, 1);
	SListEraseAfter(pos);

	SListPrint(sl);

	pos = SListFind(sl, 1);
	SListEraseAfter(pos);

	SListPrint(sl);
}

void test4()
{
	SListNode* sl = NULL;
	SListPushBack(&sl, 1);
	SListPushBack(&sl, 2);
	SListPushBack(&sl, 3);
	SListPushBack(&sl, 4);
	SListPushBack(&sl, 5);

	SListPrint(sl);
	SListDestroy(sl);
	sl = NULL;
}

void test5()
{
	SListNode* sl = NULL;
	SListPushFront(&sl, 1);
	SListPushFront(&sl, 2);
	SListPushFront(&sl, 3);
	SListPrint(sl);

}

int main()
{
	//test1();
	test2();
	//test3();
	//test4();
	//test5();

	return 0;
}

